﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using SIAKADCORE.Helpers;
using SIAKADCORE.Models;
using System.Data;

namespace SIAKADCORE.Controllers
{
   
    public static class PemilihanPertanyaanController
    {

        public static bool Tambah(PemilihanPertanyaan pemilihanPertanyaan)
        {
            string queryString = string.Format("INSERT INTO {0} ({1} ,{2} ) VALUES ('{4}' ,'{5}' ,'{6}')",
                PemilihanPertanyaan.TableName,
                PemilihanPertanyaan.ColumnNameIdPertanyaan,
                PemilihanPertanyaan.ColumnNameIdTahun,
                pemilihanPertanyaan.IdPemilihanPertanyaan,
                pemilihanPertanyaan.IdPertanyaan,
                pemilihanPertanyaan.IdTahun);
            return SQLHelper.Instance.ExecuteNonQuery(queryString);
        }

        

        public static bool Hapus(string idPemilihanPertanyaan)
        {
            string queryString = string.Format("DELETE FROM {0} WHERE {1} = '{2}'",
                PemilihanPertanyaan.TableName, PemilihanPertanyaan.ColumnNameIdPemilihanPertanyaan, idPemilihanPertanyaan);
            return SQLHelper.Instance.ExecuteNonQuery(queryString);
        }


        public static bool GetTabel(out DataSet dataset)
        {
            string queryString = string.Format("SELECT {0} ,{1}  FROM {3}",
                PemilihanPertanyaan.ColumnNameIdPemilihanPertanyaan, 
                PemilihanPertanyaan.ColumnNameIdPertanyaan,
                PemilihanPertanyaan.ColumnNameIdTahun,
                PemilihanPertanyaan.TableName);
            return SQLHelper.Instance.ExecuteReader(queryString, out dataset);
        }


        public static bool GetTabelPreview(string idPemilihanPertanyaan, out DataSet dataset)
        {
            string queryString = string.Format("use abet select pertanyaan.pertanyaan, tahun.tahun from pertanyaan, tahun, pemilihan_pertanyaan where pemilihan_pertanyaan.id_pertanyaan = pertanyaan.id_pertanyaan and pemilihan_pertanyaan.id_tahun = tahun.id_tahun and tahun.id_tahun ='{0}", idPemilihanPertanyaan);
            return SQLHelper.Instance.ExecuteReader(queryString, out dataset);
        }

        /// <summary>
        /// Method untuk mendapatkan id pertanyaan. Digunakan pada saat memasukkan entri baru.
        /// </summary>
        /// <returns>string kosong ketika terjadi error atau id pertanyaan baru.</returns>
        public static string GetID()
        {
            var dataset = new DataSet();
            bool isQueryAccomplished = GetTabel(out dataset);
            if (!isQueryAccomplished) return string.Empty;

            return SQLHelper.Instance.GetID(Pertanyaan.IdPrefix, Pertanyaan.IdLength, ref dataset);
        }
    }
}
